package com.acic.jba.bean;

import java.util.Date;

import org.nutz.dao.entity.annotation.ColDefine;
import org.nutz.dao.entity.annotation.Column;
import org.nutz.dao.entity.annotation.Comment;
import org.nutz.dao.entity.annotation.Id;
import org.nutz.dao.entity.annotation.Table;
import org.nutz.json.Json;
import org.nutz.json.JsonFormat;
import org.nutz.lang.Times;

/**
 * 报案回执单
 * 
 * @author Kerbores
 * 
 *         create at 2014年7月8日
 */
@Table("jba_receipt_detail")
public class Receipt {
	/**
	 * 代为求偿标识
	 */
	@Column("rpt_agent_claim_flag")
	@Comment("代为求偿标识")
	private boolean agentClaimFlag = false;
	/**
	 * 报案有效标志
	 */
	@Column("rpt_available_flag")
	@Comment("报案有效标识,默认有保单且未过期的为有效")
	private boolean availableFlag;
	/**
	 * 发动机号
	 */
	@Column("rpt_car_engine")
	@ColDefine(width = 50)
	@Comment("涉案车发动机号")
	private String carEngine;
	/**
	 * 品牌型号
	 */
	@Column("rpt_car_model")
	@ColDefine(width = 50)
	@Comment("涉案车品牌型号")
	private String carModel;
	/**
	 * 车辆车牌号码
	 */
	@Column("rpt_car_plate")
	@ColDefine(width = 50)
	@Comment("涉案车车牌号")
	private String carPlate;
	/**
	 * 车架号
	 */
	@Column("rpt_car_vin")
	@ColDefine(width = 50)
	@Comment("涉案车VIN码")
	private String carVin;
	/**
	 * 查勘地点
	 */
	@Column("rpt_check_addr")
	@ColDefine(width = 200)
	@Comment("查勘地点")
	private String checkAddr;
	/**
	 * 查勘地区
	 */
	@Column("rpt_check_area")
	@ColDefine(width = 50)
	@Comment("查勘地点区县")
	private String checkArea;
	/**
	 * 查勘城市
	 */
	@Column("rpt_check_city")
	@ColDefine(width = 50)
	@Comment("查勘城市")
	private String checkCity;
	/**
	 * 查勘地点纬度
	 */
	@Column("rpt_check_latt")
	@Comment("查勘地点纬度")
	private double checkLatt;
	/**
	 * 查勘地点经度
	 */
	@Column("rpt_check_lngt")
	@Comment("查勘地点经度")
	private double checkLngt;
	/**
	 * 查勘省份
	 */
	@Column("rpt_check_province")
	@Comment("查勘地点省份")
	@ColDefine(width = 50)
	private String checkProvince;
	/**
	 * 联系人
	 */
	@Column("rpt_contact")
	@ColDefine(width = 50)
	@Comment("现场联系人")
	private String contact;
	/**
	 * 联系人电话
	 */
	@Column("rpt_contact_phone")
	@ColDefine(width = 50)
	@Comment("联系电话")
	private String contactNo;

	/**
	 * 死亡人数
	 */
	@Column("rpt_dead_num")
	@Comment("死亡人数")
	private int deadNum = 0;

	/**
	 * 报案处置意见
	 */
	@Column("rpt_dell_flag")
	@Comment("报案建议处置意见,1为派工,0为不派工")
	private boolean dellFlag;

	/**
	 * 处置状态
	 */
	@ColDefine(width = 50)
	@Column("rpt_dell_status")
	@Comment("报案处理状态")
	private String dellStatus = "报案成功";

	/**
	 * 出险经过描述
	 */
	@Column("rpt_description")
	@ColDefine(width = 200)
	@Comment("出险经过描述")
	private String description;

	/**
	 * 巨灾标识
	 */
	@Column("rpt_huge_disaster_flag")
	@Comment("巨灾标志,1为巨灾,0非巨灾")
	private boolean hugeDisasterFlag = false;

	/**
	 * 报案单号
	 */
	@Id(auto = true)
	@Comment("保安单号,自增序列,有触发器产生此序列")
	private int id;

	/**
	 * 来电次数
	 */
	@Column("rpt_income_Times")
	@Comment("来电次数")
	private int incomeTimes = 1;

	/**
	 * 受伤人数
	 */
	@Column("rpt_injury_num")
	@Comment("受伤人数")
	private int injuryNum = 0;

	/**
	 * 涉案车辆数
	 */
	@Column("rpt_involved_car_num")
	@Comment("涉案车辆数")
	private int involvedCarNum;
	/**
	 * 物品损失标识
	 */
	@Column("rpt_materials_destroy_flag")
	@Comment("物品损失标志,1有物损0无物损")
	private boolean materialsDestroyFlag = false;
	/**
	 * 出险地点
	 */
	@Column("rpt_occur_addr")
	@ColDefine(width = 200)
	@Comment("出险地点")
	private String occurAddr;
	/**
	 * 出险地区
	 */
	@Column("rpt_occur_area")
	@ColDefine(width = 50)
	@Comment("出险点的区县")
	private String occurArea;
	/**
	 * 出险城市
	 */
	@Column("rpt_occur_city")
	@ColDefine(width = 50)
	@Comment("出险地点城市")
	private String occurCity;
	/**
	 * 出险地点纬度
	 */
	@Column("rpt_occur_latt")
	@Comment("出险纬度")
	private double occurLatt;
	/**
	 * 出险地点经度
	 */
	@Column("rpt_occur_lngt")
	@Comment("出险经度")
	private double occurLngt;
	/**
	 * 出险省份
	 */
	@Column("rpt_occur_province")
	@Comment("出险省份")
	@ColDefine(width = 50)
	private String occurProvince;

	/**
	 * 出险时间
	 */
	@Column("rpt_occur_time")
	@Comment("出险时间")
	private Date occurTime;
	/**
	 * 操作员ID
	 */
	@Column("rpt_operator_id")
	@ColDefine(width = 50)
	@Comment("接线员ID")
	private String operatorId;
	/**
	 * 出险原因描述
	 */
	@Column("rpt_reason")
	@ColDefine(width = 200)
	@Comment("出险原因描述")
	private String reason;
	/**
	 * 录音编号
	 */
	@Column("rpt_recode_code")
	@ColDefine(width = 50)
	@Comment("来电录音编号")
	private String recodeCode;
	/**
	 * 报案人
	 */
	@Column("rpt_reporter")
	@ColDefine(width = 50)
	@Comment("报案人")
	private String reporter;
	/**
	 * 报案人电话
	 */
	@Column("rpt_reporter_phone")
	@ColDefine(width = 50)
	@Comment("报案人电话")
	private String reporterNo;
	/**
	 * 报案时间
	 */
	@Column("rpt_report_time")
	@Comment("报案时间")
	private Date reportTime;
	/**
	 * 单车事故标识
	 */
	@Column("rpt_single_car_flag")
	@Comment("单车事故标识,1为单车事故,0非单车事故")
	private boolean singleCarFlag = true;
	/**
	 * 报案耗时 <strong>指电话打进到点击提交按钮的时间,单位毫秒</strong>
	 */
	@Column("rpt_operation_time")
	@Comment("报案耗时")
	private long timeUse;
	/**
	 * 报案更多查询耗时<strong>指由于电话信息无法获取保单在更多详情页面上的耗时,正常报案此时间应该为0 ,单位毫秒</strong>
	 */
	@Column("rpt_operation_time_more")
	@Comment("报案更多信息查询耗时---暂时未处理均为0")
	private long timeUseMore;
	/**
	 * 报案总耗时<strong>指电话打进到提交成功的时间,单位毫秒</strong>
	 */
	@Column("rpt_operation_time_total")
	@Comment("报案总耗时,用于统计接线员工作效率")
	private long timeUseTotal;

	/**
	 * 有效商业保单号
	 */
	@Column("rpt_valid_biz_ply_no")
	@ColDefine(width = 200)
	@Comment("有效商业保单号,最新号,不一定是未过期保单,可能为空")
	private String validBizPlyNo;
	/**
	 * 有效交强保单号
	 */
	@Column("rpt_valid_tra_ply_no")
	@ColDefine(width = 200)
	@Comment("有效交强保单号,最新号,不一定是未过期保单,可能为空")
	private String validTraPlyNo;
	/**
	 * 查勘地址有效标志
	 */
	@Column("rpt_check_add_valid")
	@Comment("查勘地址有效标志,如果为无效地址需要查勘人员出现场之前先确认地址")
	private boolean checkAddressFlag = true;
	/**
	 * 出险地址有效标志
	 */
	@Column("rpt_occur_add_valid")
	@Comment("出险地址有效标志,如果为无效地址需要查勘人员出现场之前先确认地址")
	private boolean occurAddressFlag = true;
	/**
	 * 超时报案标志
	 */
	@Column("rpt_timeout_flag")
	@Comment("超时报案标志")
	private boolean timeOutFlag = false;
	/**
	 * 超时报案原因
	 */
	@Column("rpt_timeout_reason")
	@Comment("超时报案原因")
	@ColDefine(width= 100)
	private String timeOutReason ;
	/**
	 * 超时报案说明
	 */
	@Column("rpt_timeout_description")
	@Comment("超时报案说明")
	@ColDefine(width= 1000)
	private String timeOutDescription ;

	/**
	 * @return the checkAddressFlag
	 */
	public boolean isCheckAddressFlag() {
		return checkAddressFlag;
	}

	/**
	 * @param checkAddressFlag the checkAddressFlag to set
	 */
	public void setCheckAddressFlag(boolean checkAddressFlag) {
		this.checkAddressFlag = checkAddressFlag;
	}

	/**
	 * @return the occurAddressFlag
	 */
	public boolean isOccurAddressFlag() {
		return occurAddressFlag;
	}

	/**
	 * @param occurAddressFlag the occurAddressFlag to set
	 */
	public void setOccurAddressFlag(boolean occurAddressFlag) {
		this.occurAddressFlag = occurAddressFlag;
	}

	/**
	 * @return the timeOutFlag
	 */
	public boolean isTimeOutFlag() {
		return timeOutFlag;
	}

	/**
	 * @param timeOutFlag the timeOutFlag to set
	 */
	public void setTimeOutFlag(boolean timeOutFlag) {
		this.timeOutFlag = timeOutFlag;
	}

	/**
	 * @return the timeOutReason
	 */
	public String getTimeOutReason() {
		return timeOutReason;
	}

	/**
	 * @param timeOutReason the timeOutReason to set
	 */
	public void setTimeOutReason(String timeOutReason) {
		this.timeOutReason = timeOutReason;
	}

	/**
	 * @return the timeOutDescription
	 */
	public String getTimeOutDescription() {
		return timeOutDescription;
	}

	/**
	 * @param timeOutDescription the timeOutDescription to set
	 */
	public void setTimeOutDescription(String timeOutDescription) {
		this.timeOutDescription = timeOutDescription;
	}

	public String getCarEngine() {
		return carEngine;
	}

	public String getCarModel() {
		return carModel;
	}

	public String getCarPlate() {
		return carPlate;
	}

	public String getCarVin() {
		return carVin;
	}

	public String getCheckAddr() {
		return checkAddr;
	}

	public String getCheckAddrInfo() {
		return checkAddr == null ? null : checkAddr.substring(checkAddr.lastIndexOf("(") + 1, checkAddr.lastIndexOf(")"));
	}

	public String getCheckArea() {
		return checkArea;
	}

	public String getCheckCity() {
		return checkCity;
	}

	public double getCheckLatt() {
		return checkLatt;
	}

	public double getCheckLngt() {
		return checkLngt;
	}

	public String getCheckProvince() {
		return checkProvince;
	}

	public String getContact() {
		return contact;
	}

	public String getContactNo() {
		return contactNo;
	}

	public int getDeadNum() {
		return deadNum;
	}

	public String getDellStatus() {
		return dellStatus;
	}

	public String getDescription() {
		return description;
	}

	public int getId() {
		return id;
	}

	public int getIncomeTimes() {
		return incomeTimes;
	}

	public int getInjuryNum() {
		return injuryNum;
	}

	public int getInvolvedCarNum() {
		return involvedCarNum;
	}

	public String getOccurAddr() {
		return occurAddr;
	}

	public String getOccurAddrInfo() {
		return occurAddr == null ? null : occurAddr.substring(occurAddr.lastIndexOf("(") + 1, occurAddr.lastIndexOf(")"));
	}

	public String getOccurArea() {
		return occurArea;
	}

	public String getOccurCity() {
		return occurCity;
	}

	public double getOccurLatt() {
		return occurLatt;
	}

	public double getOccurLngt() {
		return occurLngt;
	}

	public String getOccurProvince() {
		return occurProvince;
	}

	public Date getOccurTime() {
		return occurTime;
	}

	public String getOperatorId() {
		return operatorId;
	}

	public String getReason() {
		return reason;
	}

	public String getRecodeCode() {
		return recodeCode;
	}

	public String getReporter() {
		return reporter;
	}

	public String getReporterNo() {
		return reporterNo;
	}

	public Date getReportTime() {
		return reportTime;
	}

	public String getReportTimeInfo() {
		return reportTime == null ? null : Times.format("yyyy-MM-dd HH:mm:ss", reportTime);
	}

	public long getTimeUse() {
		return timeUse;
	}

	public long getTimeUseMore() {
		return timeUseMore;
	}

	public long getTimeUseTotal() {
		return timeUseTotal;
	}

	public String getValidBizPlyNo() {
		return validBizPlyNo;
	}

	public String getValidTraPlyNo() {
		return validTraPlyNo;
	}

	public boolean isAgentClaimFlag() {
		return agentClaimFlag;
	}

	public boolean isAvailableFlag() {
		return availableFlag;
	}

	public boolean isDellFlag() {
		return dellFlag;
	}

	public boolean isHugeDisasterFlag() {
		return hugeDisasterFlag;
	}

	public boolean isMaterialsDestroyFlag() {
		return materialsDestroyFlag;
	}

	public boolean isSingleCarFlag() {
		return singleCarFlag;
	}

	public void setAgentClaimFlag(boolean agentClaimFlag) {
		this.agentClaimFlag = agentClaimFlag;
	}

	public void setAvailableFlag(boolean availableFlag) {
		this.availableFlag = availableFlag;
	}

	public void setCarEngine(String carEngine) {
		this.carEngine = carEngine;
	}

	public void setCarModel(String carModel) {
		this.carModel = carModel;
	}

	public void setCarPlate(String carPlate) {
		this.carPlate = carPlate;
	}

	public void setCarVin(String carVin) {
		this.carVin = carVin;
	}

	public void setCheckAddr(String checkAddr) {
		this.checkAddr = checkAddr;
	}

	public void setCheckArea(String checkArea) {
		this.checkArea = checkArea;
	}

	public void setCheckCity(String checkCity) {
		this.checkCity = checkCity;
	}

	public void setCheckLatt(double checkLatt) {
		this.checkLatt = checkLatt;
	}

	public void setCheckLngt(double checkLngt) {
		this.checkLngt = checkLngt;
	}

	public void setCheckProvince(String checkProvince) {
		this.checkProvince = checkProvince;
	}

	public void setContact(String contact) {
		this.contact = contact;
	}

	public void setContactNo(String contactNo) {
		this.contactNo = contactNo;
	}

	public void setDeadNum(int deadNum) {
		this.deadNum = deadNum;
	}

	public void setDellFlag(boolean dellFlag) {
		this.dellFlag = dellFlag;
	}

	public void setDellStatus(String dellStatus) {
		this.dellStatus = dellStatus;
	}

	public void setDescription(String description) {
		this.description = description;
	}

	public void setHugeDisasterFlag(boolean hugeDisasterFlag) {
		this.hugeDisasterFlag = hugeDisasterFlag;
	}

	public void setId(int id) {
		this.id = id;
	}

	public void setIncomeTimes(int incomeTimes) {
		this.incomeTimes = incomeTimes;
	}

	public void setInjuryNum(int injuryNum) {
		this.injuryNum = injuryNum;
	}

	public void setInvolvedCarNum(int involvedCarNum) {
		this.involvedCarNum = involvedCarNum;
	}

	public void setMaterialsDestroyFlag(boolean materialsDestroyFlag) {
		this.materialsDestroyFlag = materialsDestroyFlag;
	}

	public void setOccurAddr(String occurAddr) {
		this.occurAddr = occurAddr;
	}

	public void setOccurArea(String occurArea) {
		this.occurArea = occurArea;
	}

	public void setOccurCity(String occurCity) {
		this.occurCity = occurCity;
	}

	public void setOccurLatt(double occurLatt) {
		this.occurLatt = occurLatt;
	}

	public void setOccurLngt(double occurLngt) {
		this.occurLngt = occurLngt;
	}

	public void setOccurProvince(String occurProvince) {
		this.occurProvince = occurProvince;
	}

	public void setOccurTime(Date occurTime) {
		this.occurTime = occurTime;
	}

	public void setOperatorId(String operatorId) {
		this.operatorId = operatorId;
	}

	public void setReason(String reason) {
		this.reason = reason;
	}

	public void setRecodeCode(String recodeCode) {
		this.recodeCode = recodeCode;
	}

	public void setReporter(String reporter) {
		this.reporter = reporter;
	}

	public void setReporterNo(String reporterNo) {
		this.reporterNo = reporterNo;
	}

	public void setReportTime(Date reportTime) {
		this.reportTime = reportTime;
	}

	public void setSingleCarFlag(boolean singleCarFlag) {
		this.singleCarFlag = singleCarFlag;
	}

	public void setTimeUse(long timeUse) {
		this.timeUse = timeUse;
	}

	public void setTimeUseMore(long timeUseMore) {
		this.timeUseMore = timeUseMore;
	}

	public void setTimeUseTotal(long timeUseTotal) {
		this.timeUseTotal = timeUseTotal;
	}

	public void setValidBizPlyNo(String validBizPlyNo) {
		this.validBizPlyNo = validBizPlyNo;
	}

	public void setValidTraPlyNo(String validTraPlyNo) {
		this.validTraPlyNo = validTraPlyNo;
	}

	@Override
	public String toString() {
		return Json.toJson(this, JsonFormat.full());
	}

}
